www.gusucode.com > XerCMS 携云PHP企业建站程序 v2015PHP源码程序 > XerCMS 携云PHP企业建站程序 v2015/XerCMS_v20150724/XerCMS_v20150724/XerCMS/Modules/member/index.php
<?php /** * @name XERCMS * @author Arno <XerCMS@163.com> [QQ:1328013] * @version 1.0.0 * @link http://www.XerCMS.com * @thanks badboy */ !defined('XERCMS') && exit('Access Denied'); libs('#member'); class XerCMS_MODULE_index extends member { public function pay() { X::$G['pay'] = htmlchars(g('pay')); include(tpl('member/pay_index.htm')); } public function message() { X::$G['d'] = g('d'); if(X::$G['d'] == 'view') { $id = int1(g('id')); $message = rs('message')->view($id); include_once(tpl('member/message.htm')); } else if (X::$G['d'] == 'rely') { $id = g('id'); $rely = rs('message')->rely($id); } else if (X::$G['d'] == 'send') { if(isset($_POST['message'])) { $message = p('message'); sendmessage((int)$message['uid'],htmlchars($message['title']),htmlchars($message['content'])); showtips('message_send_finish','index.php?m=member&a=message'); } else { X::$G['send'] = (int)g('send'); include_once(tpl('member/message.htm')); } } else if (X::$G['d'] == 'del') { $ids = g('id'); if(strpos($ids,',')) { $ids = explode(',',$ids); foreach($ids as $k=>$v) { $ids[$k] = (int)$v; } $ids = implode(',',$ids); } else $ids = (int)$ids; rs('message')->del($ids); showtips('message_del_ok','index.php?m=member&a=message'); } else { $page = int1(g('page'));$state = g('state','0,1'); $message_list = rs('message')->read($page,$state); //print_R($m); $m_toatal = rs('message')->count($state);; multi($m_toatal,30); } include_once(tpl('member/message.htm')); } public function registerPost() { $member2 = p('member'); if(strsafe($member2) === false) { showtips('no_safe_str',X::$G['urlpath'].'?m=member&a=register'); } if(isset($member2['pass']{32}) || $member2['pass'] !== $member2['pass2']) { showtips('no_common_pass',X::$G['urlpath'].'?m=member&a=register'); } if(empty($member2['nick'])) { showtips('nick_empty',X::$G['urlpath'].'?m=member&a=register'); } if(!valid()->isMail($member2['email'])) { showtips('邮箱不正确!',X::$G['urlpath'].'?m=member&a=register'); } $member_data = array('name'=>$member2['name'],'pass'=>md5($member2['pass'])); $m = DB::result('SELECT uid FROM xercms_member WHERE name = \''.$member2['name'].'\''); if(isset($m['uid'])) { showtips('用户名称已经存在',X::$G['urlpath'].'?m=member&a=register'); } $mid = DB::insert('xercms_member',$member_data); $registerINI = ini('member/register'); $member_profile_data = array('group'=>(int)$registerINI['initgroup'],'uid'=>$mid,'nick'=>htmlchars($member2['nick']),'qq'=>htmlchars($member2['qq']),'email'=>htmlchars($member2['email']),'telephone'=>htmlchars($member2['telephone'])); DB::insert('xercms_member_profile',$member_profile_data); if($registerINI['credit']) { foreach($registerINI['credit'] as $k=>$v) { $credits['credit'.$k] = $v; } } $credits['uid'] = $mid; DB::insert('xercms_member_credits',$credits); DB::insert('xercms_member_doing',array('uid'=>$mid)); DB::insert('xercms_member_count',array('uid'=>$mid)); DB::insert('xercms_member_session',array('uid'=>$mid,'time'=>time())); DB::insert('xercms_member_verify',array('uid'=>$mid)); if($modules['verify'] == 1) { $str = random();X::$G['uid'] = $mid;X::$G['nick'] = $member_profile_data['nick'];$verify['email'] = $member_profile_data['email']; $verifyVar = array('nick'=>X::$G['nick'],'date'=>date('Y-m-d H:i:s',X::$G['time']),'verifylink'=>'http://'.X::$G['domain'].X::$G['urlpath'].'index.php?m=member&a=verify&d=verify&uid='.X::$G['uid'].'&code='.$str); DB::insert('xercms_verify_code',array('uid'=>X::$G['uid'],'expired'=>(X::$G['time'] + 43200),'str'=>$str)); sendemail($verify['nick'],$verify['email'],X::$G['sitename'].' - 会员邮箱验证邮件',st($modules['verifymail'],$verifyVar)); showtips('验证邮件已经发送,请注意查收。',X::$G['urlpath']); } showtips('a_member',$G['urlpath'].'index.php?m=member&a=login'); } public function profilePost() { $user = p('member'); foreach($user as $k=>$v) { $user[$k] = strfilter($v); } rs('member')->where(array('uid'=>X::$G['uid']))->updateProfile($user); showtips('11',X::$G['urlpath'].'index.php?m=member&a=profile'); } public function forum() { X::$G['d'] = g('d','topic');$page = int1(g('page')); if(X::$G['d'] == 'posts') { $posts = rs('forum')->posts($page); $multipage = multi(rs('forum')->count('posts'),$page); } else { $topics = rs('forum')->topic($page); $multipage = multi(rs('forum')->count('topic'),$page); } include_once(tpl('member/forum.htm')); } public function upfiles() { setformat('json'); $config = ini('member/group/'.X::$G['group']); if(empty($config)) { exit('Access Denied'); } else { if($config['upload'][0] == 0) { error('upload_group_limit'); } else if($config['upload'][1] != 0 && X::$G['upload'] > $config['upload'][1]) { error('upload_group_size'); } } $id = int1(g('id')); c('upload')->load($id); c('upload')->files(); c('upload')->show(); } public function verifymail() { $uid = int1(g('uid'));$code = strfilter(g('code')); DB::query('delete from xercms_verify_code where expired < '.X::$G['time']); $yes = DB::result('SELECT uid FROM xercms_verify_code WHERE uid = \''.$uid.'\' AND str = \''.$code.'\' LIMIT 1'); if($yes) { if($modules['verifygroup']) { DB::update('xercms_member_profile',array('group'=>$modules['verifygroup']),'uid = \''.$uid.'\''); } DB::update('xercms_member_verify',array('mailstatus'=>1,'mail_verify_time'=>X::$G['time']),'uid = \''.$uid.'\''); showtips('邮箱验证成功,感谢您加入我们。',X::$G['urlpath'].'index.php?m=member&a=login'); } else { showtips('抱歉,验证失败。请重新发送验证邮件。',X::$G['urlpath']); } } public function addfav() { $data['title'] = htmlstr(p('title')); if(empty($data['title'])) { showtips('标题不能为空。',dreferer()); } $data['url'] = htmlstr(p('url')); if(!verify::isUrl($data['url'])) { showtips('收藏不成功,网址验证失败!',dreferer()); } $fid = DB::result_first('select id from xercms_fav where uid = \''.X::$G['uid'].'\' AND url = \''.$data['url'].'\''); if($fid) { showtips('很抱歉,您已经收藏过该网址。',dreferer()); } $fid = DB::insert('xercms_fav',array('uid'=>X::$G['uid'],'time'=>X::$G['time'],'url'=>$data['url'],'title'=>$data['title'])); if($fid) { showtips('收藏成功!',dreferer()); } else showtips('收藏失败!',dreferer()); } public function delfav() { $id = int1(g('id')); $uid = DB::result_first('select uid from xercms_fav where id = '.$id); if($uid == X::$G['uid']) { DB::query('DELETE FROM xercms_fav WHERE id = '.$id.' AND uid = '.X::$G['uid']); showtips('删除成功',dreferer()); } else showtips('很抱歉,不是本人收藏无法操作。',dreferer()); } public function loginPost() { $user = p('member'); $name = strfilter($user['name']); $pass = strfilter($user['pass']); if(empty($name) || empty($pass)) { showtips(105,dreferer()); } rs('member')->table('xercms_error_ips')->where('`time` > '.(X::$G['time'] - 600))->delete(); rs('member')->table('xercms_error_login')->where('`time` > '.(X::$G['time'] - 600))->update(array('num'=>0)); $ips = rs('member')->table('xercms_error_ips')->where(array('ip'=>X::$G['ip']))->select(1); if(isset($ips['num']) && $ips['num'] > 2) { showtips('over_error',dreferer()); } $uid = rs('member')->verify($name,md5($pass)); if($uid > 0) { rs('member')->login($uid); header('Location:'.dreferer()); exit; } else if ($uid == -1) {//exit('ok2'); showtips('over_error',dreferer()); } else if ($uid == -2) {//exit('ok3'); showtips('100',dreferer()); } else { if(isset($ips['num'])) {//exit('ok5'); rs('member')->table('xercms_error_ips')->where(array('ip'=>$G['ip']))->update(array('num'=>($ips['num'] + 1))); } else rs('member')->table('xercms_error_ips')->insert(array('num'=>1,'time'=>X::$G['time'],'ip'=>X::$G['ip'])); //exit('ok'); showtips('100',dreferer()); //include(tpl('member/login.htm')); } } function passwordSubmit() { $member = p('member'); if($member['newpass'] != $member['newpass2']) { showtips('no_common_pass'); } $db_Member = DB::result('SELECT * FROM xercms_member WHERE uid = '.X::$G['uid']); if($db_Member['pass'] == md5($member['oldpass'])) { DB::update('xercms_member',array('pass'=>md5($member['newpass'])),array('uid'=>X::$G['uid'])); showtips('password_update'); } else showtips('password_old_error'); } public function password() { include_once(tpl('member/password.htm')); } public function agreement() { include_once(tpl('member/agreement.htm')); } public function sendverify() { $verify = DB::result('SELECT m.nick,m.email,v.mailstatus FROM xercms_member_profile m left join xercms_member_verify v on v.uid = m.uid WHERE m.uid = '.X::$G['uid']); if($verify['mailstatus']) { showtips('邮箱已经验证,无需重复验证。',X::$G['urlpath']); } else { $str = DB::result('SELECT str,expired FROM xercms_verify_code WHERE uid = '.X::$G['uid'].' AND expired > '.X::$G['time'].' LIMIT 1'); global $XERCMS; if($str) { if($str['expired'] - X::$G['time'] > 42300) { showtips('发送失败,请15分钟再尝试。',X::$G['urlpath']); } $verifyVar = array('nick'=>X::$G['nick'],'date'=>date('Y-m-d H:i:s',X::$G['time']),'verifylink'=>'http://'.X::$G['domain'].X::$G['urlpath'].'index.php?m=member&a=verify&d=verify&uid='.X::$G['uid'].'&code='.$str); sendemail($verify['nick'],$verify['email'],$G['sitename'].' - 会员邮箱验证邮件',st($modules['verifymail'],$verifyVar)); showtips('验证邮件已经重新发送,请注意查收。',X::$G['urlpath'].'?m=member'); } else { $str = random(); $verifyVar = array('nick'=>X::$G['nick'],'date'=>date('Y-m-d H:i:s',X::$G['time']),'verifylink'=>'http://'.X::$G['domain'].X::$G['urlpath'].'index.php?m=member&a=verify&d=verify&uid='.X::$G['uid'].'&code='.$str); DB::insert('xercms_verify_code',array('uid'=>$G['uid'],'expired'=>(X::$G['time'] + 43200),'str'=>$str)); sendemail($verify['nick'],$verify['email'],X::$G['sitename'].' - 会员邮箱验证邮件',st($modules['verifymail'],$verifyVar)); showtips('验证邮件已经发送,请注意查收。',X::$G['urlpath']); } } } public function register() { include_once(tpl('member/register.htm')); } public function profile() { X::$G['do'] = g('d'); $member = DB::result('select p.*,v.mailstatus from xercms_member_profile p left join xercms_member_verify v on v.uid = p.uid WHERE p.uid = '.X::$G['uid'].' limit 1'); include_once(tpl('member/profile.htm')); } public function log() { $page = int1(g('page'));//print_r(X::$G);exit; $log = rs('log')->read($page); $multipage = multi(rs('log')->count(),$page); include_once(tpl('member/log.htm')); } public function archives() { $model = isset($_GET['model']) ? $_GET['model'] : 'article'; $page = int1(g('page')); $archives = rs('archives')->read($page); $multipage = multi((rs('archives')->count()/20),$page); include_once(tpl('member/archives.htm')); } public function XerCMS() { include_once(tpl('member/xercms.htm')); } public function fav(){ $page = int1(g('page'));$number = int1(g('number'));$number = $number > 100 ? 100 : $number; $favs = DB::fetch_all('select * from xercms_fav f where f.uid = '.X::$G['uid'].' LIMIT '.($number*($page-1)).','.$number); $total = DB::result_first('select count(*) from xercms_fav where uid = '.X::$G['uid']); $multipage = multi(($total/20),$page); include_once(tpl('member/fav.htm')); } public function login() { if(X::$G['uid']) { header('Location:'.X::$G['urlpath'].'?m=member'); exit; } else include_once(tpl('member/login.htm')); } public function logout() { session_destroy(); showtips('logout',X::$G['urlpath']); } } ?>